import streamlit as st
from PIL import Image
import streamlit.components.v1 as components
import utils


@utils.exception_handler
def page_config(title="Page", icon="./static/logo128.png", lay="wide", menu=None):
    """
    配置页面的基本属性，如页面标题、图标、布局和菜单项。

    参数:
    - title: 页面的标题，默认为'Page'。
    - icon: 页面图标的路径，默认为'./static/logo128.png'。
    - lay: 页面布局，默认为'wide'，可选值有'narrow'和'wide'。
    - menu: 页面右上角的菜单项，默认为None，将会使用默认的菜单项。

    返回值:
    无
    """

    # 当menu参数为None时，设置默认的菜单项
    if menu is None:
        menu = {
            "Get Help": "https://sdauml.yosvu.cn/使用文档",
            "Report a bug": "https://sdauml.yosvu.cn/使用文档",
            "About": """   
##### Copyright (c) 2024 Maicarons""",
        }

    # 打开图标图片
    pic = Image.open(icon)

    # 确保在其他 Streamlit 功能之前调用 set_page_config
    st.set_page_config(
        page_title=title,  # 页面标题
        page_icon=pic,  # 页面图标
        layout=lay,  # 页面布局
        menu_items=menu,  # 页面菜单项
    )
    st.logo(icon)
    # 在页面上显示标题
    if title:
        st.title(title)
    # 如果需要，可以在这里添加其他的页面元素。
